Java Generics - 类本身的子类?
全部标签 这是同一问题的稍微详细的版本。我们不能在子类中访问(父类(superclass)的)protected变量,子类在不同的包中。我们只能访问父类(superclass)的继承变量。但是,如果我们将修饰符更改为“protectedstatic”,那么我们也可以访问父类(superclass)的变量。为什么会这样?这是我试图解释的相同代码片段。packagefirstOne;publicclassFirst{**protected**inta=7;}packagesecondOne;importfirstOne.*;publicclassSecondextendsFirst{protecte
对Java来说相当新,但我想知道为什么包访问被认为比子类访问“更具限制性”。也就是说,每个为子类提供对成员的访问权限的访问修饰符也为整个包提供访问权限,并且有些修饰符提供包访问权限但不提供子类访问权限。这不是完全倒退了吗?假设我在某个包中有一个类ControlledInstantiation。如果我有另一个类AlsoControlledInstantiationextendsControlledInstantiation,我将无法调用ControlledInstantiation的构造函数,除非我将它设置为protected或public。如果我将它设置为protected,现在包中的
我有一个子类和一个父类(superclass)。在父类(superclass)中,我有一个记录某些内容的方法。当我创建子类的实例时,记录器会为父类(superclass)创建一条日志消息。为什么会这样?代码示例:父类(superclass).javaimportjava.util.logging.Level;importjava.util.logging.Logger;publicabstractclassSuperClass{publicvoidlogAndPrintClass(){Stringname=this.getClass().getName();System.out.pri
能不能限制注解的目标必须是某个类?我想创建一个新的验证约束来限制上传的文件类型。约束注释只能在MultipartFile属性上进行,而不能在String或类似的东西上进行。我该如何限制? 最佳答案 不是在编译时;注释放置的唯一限制是元素类型(方法、类等)。 关于java-你能限制注释目标是某个类的子类吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/24846206/
我拥有的是一组表示消息类型的Java类(接近25个)。它们都继承自Message类,我希望它是抽象的。每种消息类型都会向Message父类(superclass)提供的集合中添加一些额外的字段。我正在使用RESTeasy实现一些RESTfulWeb服务,并希望有这样的方法:publicResponsepersist(Messagemsg){EntityTransactiontx=em.getTransaction();tx.begin();try{em.persist(msg);}catch(Exceptione){e.printStackTrace();}tx.commit();em
我想将父类(superclass)对象getter复制到子类对象setter。但是我怎么能轻易做到这一点。我正在寻找类似克隆的东西。你能帮我找到它吗?一个简单的代码:父类(superclass):publicclassSuperClass1{privateStringname;privateStringsurname;publicvoidsetName(Stringname){this.name=name;}publicStringgetName(){returnthis.name;}publicvoidsetSurname(Stringsurname){this.surname=su
假设我有两个经典的非抽象JPA类:Person和Student。@Entity@Inheritance(strategy=InheritanceType.JOINED)publicclassPerson{@Id@GeneratedValue(strategy=GenerationType.AUTO)privateStringid;//...}@EntitypublicclassStudentextendsPerson{//...}现在有一些身份的人进入大学并成为一名学生。我如何在JPA中处理该事实并保留人员的ID?student=newStudent();student.setPers
在问题WhatisanefficientwaytoimplementasingletonpatterninJava?获得最多赞成票的答案是,使用枚举来实现单例。很好,我理解这些论点,分别是语言优势。但是,我有一组我定义为单例但需要扩展其他类的类,这在枚举方法中是不可能的,因为枚举不能子类化。JoshuaBloch在他的幻灯片中说:Butonethingismissing—youcan’textendanenumtypeInmostcases,youshouldn’tOnecompellingusecase—operationcodes在大多数情况下,您不应该:有人可以对此进行详细说明吗
我正在处理一个二进制流,需要高效地跳过我不感兴趣的数据范围,跳到一些将要处理的数据。InputStream.skip(long)在保证方面没有太大作用:Skipsoveranddiscardsnbytesofdatafromthisinputstream.Theskipmethodmay,foravarietyofreasons,endupskippingoversomesmallernumberofbytes,possibly0.Thismayresultfromanyofanumberofconditions;reachingendoffilebeforenbyteshavebee
我正在使用EclEmma来测试场景测试和项目用例测试的覆盖率。我有一个Base包,其中包含最通用的类和用例测试。覆盖范围如下所示:我想要的是从覆盖率计算中排除用例测试(例如BugReportTest)。但我确实希望考虑其中的测试。我知道如何将整个类(class)排除在覆盖范围之外,但如果我这样做,我的覆盖率百分比会下降,因为检查我的代码的哪些行被测试的实际测试被遗忘了。出于隐私原因,这些用例测试确实需要保留在Base包中。 最佳答案 出于技术原因,可能需要从代码覆盖率分析中排除某些类。以下选项将覆盖代理配置为从分析中排除某些类。